﻿namespace BodaNetCommunications.NodeSettings
{
    public class AlarmEnitity
    {
        //
        // 摘要:
        //     报警是否启用
        public bool AlarmEnable { get; set; } = false;

        //
        // 摘要:
        //     归档是否启用
        public bool ArchiveEnable { get; set; } = false;

        //
        // 摘要:
        //     设定限值是否启用
        public bool SetLimitEnable { get; set; } = false;

        //
        // 摘要:
        //     设定值最大值
        public float SetLimitMax { get; set; } = 100f;

        //
        // 摘要:
        //     设定值最小值
        public float SetLimitMin { get; set; } = 0f;

        //
        // 摘要:
        //     报警类型，True为条件报警，False为离散报警
        public bool AlarmType { get; set; } = false;

        //
        // 摘要:
        //     离散报警类型，True为上升沿报警，False为下降沿报警
        public bool DiscreteAlarmType { get; set; } = false;

        //
        // 摘要:
        //     离散报警缓存值
        public bool DiscreteCacheValue { get; set; } = false;

        //
        // 摘要:
        //     离散报警优先级
        public int DiscreteAlarmPriority { get; set; } = 0;

        //
        // 摘要:
        //     离散报警说明
        public string DiscreteAlarmNote { get; set; } = string.Empty;

        //
        // 摘要:
        //     低低报警是否启用
        public bool LoLoAlarmEnable { get; set; } = false;

        //
        // 摘要:
        //     低低报警设定值
        public float LoLoAlarmValue { get; set; } = 0f;

        //
        // 摘要:
        //     低低报警缓存值
        public float LoLoCacheValue { get; set; } = float.MaxValue;

        //
        // 摘要:
        //     低低报警优先级
        public int LoLoAlarmPriority { get; set; } = 0;

        //
        // 摘要:
        //     低低报警说明
        public string LoLoAlarmNote { get; set; } = string.Empty;

        //
        // 摘要:
        //     低报警是否启用
        public bool LowAlarmEnable { get; set; } = false;

        //
        // 摘要:
        //     低报警设定值
        public float LowAlarmValue { get; set; } = 0f;

        //
        // 摘要:
        //     低报警缓存值
        public float LowCacheValue { get; set; } = float.MaxValue;

        //
        // 摘要:
        //     低报警优先级
        public int LowAlarmPriority { get; set; } = 0;

        //
        // 摘要:
        //     低报警说明
        public string LowAlarmNote { get; set; } = string.Empty;

        //
        // 摘要:
        //     高报警是否启用
        public bool HighAlarmEnable { get; set; } = false;

        //
        // 摘要:
        //     高报警设定值
        public float HighAlarmValue { get; set; } = 0f;

        //
        // 摘要:
        //     高报警缓存值
        public float HighCacheValue { get; set; } = float.MinValue;

        //
        // 摘要:
        //     高报警优先级
        public int HighAlarmPriority { get; set; } = 0;

        //
        // 摘要:
        //     高报警说明
        public string HighAlarmNote { get; set; } = string.Empty;

        //
        // 摘要:
        //     高高报警是否启用
        public bool HiHiAlarmEnable { get; set; } = false;

        //
        // 摘要:
        //     高高报警设定值
        public float HiHiAlarmValue { get; set; } = 0f;

        //
        // 摘要:
        //     高高报警缓存值
        public float HiHiCacheValue { get; set; } = float.MinValue;

        //
        // 摘要:
        //     高高报警优先级
        public int HiHiAlarmPriority { get; set; } = 0;

        //
        // 摘要:
        //     高高报警说明
        public string HiHiAlarmNote { get; set; } = string.Empty;

        //
        // 摘要:
        //     归档时间
        public int ArchivePeriod { get; set; }
    }
}